home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / perl / netEther.ph < prev    next >
Text File  |  1991-08-11  |  5KB  |  167 lines

  1. if (!defined &_NETETHER) {
  2.     eval 'sub _NETETHER {1;}';
  3.     if (!defined &NET_ETHER_BAD_ALIGNMENT) {
  4.     eval 'sub NET_ETHER_COMPARE {
  5.         local($e1,$e2) = @_;
  6.         eval " &NET_ETHER_COMPARE_PTR(&$e1,&$e2)";
  7.     }';
  8.     eval 'sub NET_ETHER_COMPARE_PTR {
  9.         local($e1,$e2) = @_;
  10.         eval "((($e1)-> &byte6 == ($e2)-> &byte6) && (($e1)-> &byte5 == ($e2)-> &byte5) && (($e1)-> &byte4 == ($e2)-> &byte4) && (($e1)-> &byte3 == ($e2)-> &byte3) && (($e1)-> &byte2 == ($e2)-> &byte2) && (($e1)-> &byte1 == ($e2)-> &byte1))";
  11.     }';
  12.     }
  13.     else {
  14.     eval 'sub NET_ETHER_COMPARE {
  15.         local($e1,$e2) = @_;
  16.         eval "( &bcmp(($e1),($e2), $sizeof{ &Net_EtherAddress})==0)";
  17.     }';
  18.     eval 'sub NET_ETHER_COMPARE_PTR {
  19.         local($e1Ptr,$e2Ptr) = @_;
  20.         eval " &NET_ETHER_COMPARE(*($e1Ptr),*($e2Ptr))";
  21.     }';
  22.     }
  23.     if (!defined &NET_ETHER_BAD_ALIGNMENT) {
  24.     eval 'sub NET_ETHER_ADDR_BYTE1 {
  25.         local($e) = @_;
  26.         eval "(($e). &byte1)";
  27.     }';
  28.     eval 'sub NET_ETHER_ADDR_BYTE2 {
  29.         local($e) = @_;
  30.         eval "(($e). &byte2)";
  31.     }';
  32.     eval 'sub NET_ETHER_ADDR_BYTE3 {
  33.         local($e) = @_;
  34.         eval "(($e). &byte3)";
  35.     }';
  36.     eval 'sub NET_ETHER_ADDR_BYTE4 {
  37.         local($e) = @_;
  38.         eval "(($e). &byte4)";
  39.     }';
  40.     eval 'sub NET_ETHER_ADDR_BYTE5 {
  41.         local($e) = @_;
  42.         eval "(($e). &byte5)";
  43.     }';
  44.     eval 'sub NET_ETHER_ADDR_BYTE6 {
  45.         local($e) = @_;
  46.         eval "(($e). &byte6)";
  47.     }';
  48.     if (defined &sun4) {
  49.         eval 'sub NET_ETHER_ADDR_COPY {
  50.             local($src,$dst) = @_;
  51.             eval "(($dst). &byte1 = ($src). &byte1); (($dst). &byte2 = ($src). &byte2); (($dst). &byte3 = ($src). &byte3); (($dst). &byte4 = ($src). &byte4); (($dst). &byte5 = ($src). &byte5); (($dst). &byte6 = ($src). &byte6)";
  52.         }';
  53.     }
  54.     else {
  55.         eval 'sub NET_ETHER_ADDR_COPY {
  56.             local($src,$dst) = @_;
  57.             eval "(($dst) = ($src))";
  58.         }';
  59.     }
  60.     }
  61.     else {
  62.     eval 'sub NET_ETHER_ADDR_BYTE1 {
  63.         local($e) = @_;
  64.         eval "(($e)[0])";
  65.     }';
  66.     eval 'sub NET_ETHER_ADDR_BYTE2 {
  67.         local($e) = @_;
  68.         eval "(($e)[1])";
  69.     }';
  70.     eval 'sub NET_ETHER_ADDR_BYTE3 {
  71.         local($e) = @_;
  72.         eval "(($e)[2])";
  73.     }';
  74.     eval 'sub NET_ETHER_ADDR_BYTE4 {
  75.         local($e) = @_;
  76.         eval "(($e)[3])";
  77.     }';
  78.     eval 'sub NET_ETHER_ADDR_BYTE5 {
  79.         local($e) = @_;
  80.         eval "(($e)[4])";
  81.     }';
  82.     eval 'sub NET_ETHER_ADDR_BYTE6 {
  83.         local($e) = @_;
  84.         eval "(($e)[5])";
  85.     }';
  86.     eval 'sub NET_ETHER_ADDR_COPY {
  87.         local($src,$dst) = @_;
  88.         eval "( &bcopy(($src),($dst),$sizeof{ &Net_EtherAddress}))";
  89.     }';
  90.     }
  91.     if (!defined &NET_ETHER_BAD_ALIGNMENT) {
  92.     eval 'sub NET_ETHER_HDR_DESTINATION {
  93.         local($e) = @_;
  94.         eval "(($e). &destination)";
  95.     }';
  96.     eval 'sub NET_ETHER_HDR_SOURCE {
  97.         local($e) = @_;
  98.         eval "(($e). &source)";
  99.     }';
  100.     eval 'sub NET_ETHER_HDR_TYPE {
  101.         local($e) = @_;
  102.         eval "(($e). &type)";
  103.     }';
  104.     eval 'sub NET_ETHER_HDR_DESTINATION_PTR {
  105.         local($e) = @_;
  106.         eval "&(($e). &destination)";
  107.     }';
  108.     eval 'sub NET_ETHER_HDR_SOURCE_PTR {
  109.         local($e) = @_;
  110.         eval "&(($e). &source)";
  111.     }';
  112.     eval 'sub NET_ETHER_HDR_TYPE_PTR {
  113.         local($e) = @_;
  114.         eval "&(($e). &type)";
  115.     }';
  116.     eval 'sub NET_ETHER_HDR_COPY {
  117.         local($src, $dst) = @_;
  118.         eval "(($dst) = ($src))";
  119.     }';
  120.     }
  121.     else {
  122.     eval 'sub NET_ETHER_HDR_DESTINATION {
  123.         local($e) = @_;
  124.         eval "(( &unsigned \'char\' *) ($e))";
  125.     }';
  126.     eval 'sub NET_ETHER_HDR_SOURCE {
  127.         local($e) = @_;
  128.         eval "(( &unsigned \'char\' *) ($e+6))";
  129.     }';
  130.     eval 'sub NET_ETHER_HDR_TYPE {
  131.         local($e) = @_;
  132.         eval "(*(( &unsigned \'short\' *) ($e+12)))";
  133.     }';
  134.     eval 'sub NET_ETHER_HDR_DESTINATION_PTR {
  135.         local($e) = @_;
  136.         eval "(( &unsigned \'char\' *) ($e))";
  137.     }';
  138.     eval 'sub NET_ETHER_HDR_SOURCE_PTR {
  139.         local($e) = @_;
  140.         eval "(( &unsigned \'char\' *) ($e+6))";
  141.     }';
  142.     eval 'sub NET_ETHER_HDR_TYPE_PTR {
  143.         local($e) = @_;
  144.         eval "(*(( &unsigned \'short\' *) ($e+12)))";
  145.     }';
  146.     eval 'sub NET_ETHER_HDR_COPY {
  147.         local($src, $dst) = @_;
  148.         eval "( &bcopy($src,$dst,$sizeof{ &Net_EtherHdr}))";
  149.     }';
  150.     }
  151.     eval 'sub NET_ETHER_MIN_BYTES {64;}';
  152.     eval 'sub NET_ETHER_MAX_BYTES {1514;}';
  153.     eval 'sub NET_ETHER_PUP {0x0200;}';
  154.     eval 'sub NET_ETHER_PUP_ADDR_TRANS {0x0201;}';
  155.     eval 'sub NET_ETHER_XNS_IDP {0x0600;}';
  156.     eval 'sub NET_ETHER_IP {0x0800;}';
  157.     eval 'sub NET_ETHER_ARP {0x0806;}';
  158.     eval 'sub NET_ETHER_XNS_COMPAT {0x0807;}';
  159.     eval 'sub NET_ETHER_SPRITE {0x0500;}';
  160.     eval 'sub NET_ETHER_SPRITE_ARP {0x0502;}';
  161.     eval 'sub NET_ETHER_SPRITE_DEBUG {0x0504;}';
  162.     eval 'sub NET_ETHER_TRAIL {0x1000;}';
  163.     eval 'sub NET_ETHER_REVARP {0x8035;}';
  164.     eval 'sub NET_ETHER_MOP {0x6001;}';
  165. }
  166. 1;
  167.